home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / turbcas.exe / TURBOCAS.PAS < prev   
Pascal/Delphi Source File  |  1991-07-10  |  23KB  |  781 lines

  1.                       (***********************)
  2.                       (*      TURBO CAS      *)
  3.                       (*     Version 1.0     *)
  4.                       (*  Turbo Pascal Unit  *)
  5.                       (*     Supporting      *)
  6.                       (*    the DCA/Intel    *)
  7.                       (*         CAS         *)
  8.                       (***********************)
  9.                       (*    Public Domain    *)
  10.                       (*    by  Brian Corll  *)
  11.                       (***********************)
  12.                       (* ALL RIGHTS RESERVED *)
  13.                       (***********************)
  14.                       (*  Portions Copyright *)
  15.                       (*     1988,1989 by    *)
  16.                       (*       DCA/Intel     *)
  17.                       (***********************)
  18.  
  19. (* CAS stands for Communicating Application Specification *)
  20. (* CAS is Copyright 1988,1989 DCA/Intel                   *)
  21. {$F+,O+}
  22.  
  23. { This unit provides Turbo Pascal access to FAX cards such as Intel's
  24.   Connection CoProcessor or similar cards which adhere to the DCA/Intel CAS }
  25.  
  26. UNIT TurboCAS;
  27.  
  28. INTERFACE
  29.  
  30. USES DOS;
  31.  
  32. TYPE
  33.  
  34.    EventTypes = (Completed,Pending,Dialed,Sending,
  35.                  Receiving,Aborted,NoStatus);
  36.    CFEventType = (CFSend,CFReceive,CFPolledSend,CFPolledReceive);
  37.    Directions = (Fore,Back);
  38.    QueueTypes = (Task,Receive,Log);
  39.  
  40.    FileName = String[79];
  41.    FileNameArray = ARRAY[1..10] OF FileName;
  42.    Str32 = String[32];
  43.    Str80 = String[80];
  44.    Str47 = String[47];
  45.  
  46.    CoverPageType = ARRAY[1..240] OF CHAR;
  47.  
  48.    CFRPtr = ^ControlFileRecordType;
  49.    ControlFileRecordType = RECORD
  50.         EventType      : BYTE;{User-defined}
  51.         TransType      : BYTE;{User-defined}
  52.         Status         : INTEGER;
  53.         SendTime       : WORD;{User-defined}
  54.         SendDate       : WORD;{User-defined}
  55.         NumberOfFiles  : INTEGER;{User-defined}
  56.         FTROffset      : WORD;{User-defined}
  57.         PhoneNo        : ARRAY[1..47] OF CHAR;{User-defined}
  58.         TagField       : ARRAY[1..64] OF CHAR;
  59.         Unused1        : BYTE;{User-defined}
  60.         CallSecs       : BYTE;
  61.         CallMins       : BYTE;
  62.         CallHrs        : BYTE;
  63.         TotPages       : LONGINT;
  64.         NumPagesSent   : LONGINT;
  65.         NumFilesSent   : WORD;
  66.         CoverFlag      : BYTE;{User-defined}
  67.         NumErrors      : WORD;
  68.         Unused2        : ARRAY[1..78] OF BYTE;{User-defined}
  69.         CSID           : ARRAY[1..21] OF CHAR;
  70.         Dest           : ARRAY[1..32] OF CHAR;{User-defined}
  71.         Sender         : ARRAY[1..32] OF CHAR;{User-defined}
  72.         PCXFile        : ARRAY[1..80] OF CHAR;{User-defined}
  73.         END;
  74.  
  75.    FTRPtr = ^FileTransferRecordType;
  76.    FileTransferRecordType = RECORD
  77.         FAXType       : BYTE;
  78.         TextSize      : BYTE;
  79.         Status        : BYTE;
  80.         BytesTrans    : LONGINT;
  81.         SizeOfFile    : LONGINT;
  82.         NumPagesTrans : INTEGER;
  83.         NumPagesTot   : INTEGER;
  84.         FAXFileName   : ARRAY[1..80] OF CHAR;
  85.         Increments    : BYTE;
  86.         Inches        : CHAR;
  87.         Reserved      : ARRAY[1..31] OF CHAR;
  88.         END;
  89.  
  90.    EDBPtr = ^ExternalDataBlock;
  91.    ExternalDataBlock = RECORD
  92.         CASMajor : BYTE;
  93.         CASMinor : BYTE;
  94.         ManagerPath : ARRAY[1..68] OF CHAR;
  95.         PBookName : ARRAY[1..13] OF CHAR;
  96.         LogoName  : ARRAY[1..13] OF CHAR;
  97.         Sender    : ARRAY[1..32] OF CHAR;
  98.         CSID      : ARRAY[1..21] OF CHAR;
  99.         Reserved  : ARRAY[1..107] OF BYTE;
  100.         END;
  101.  
  102.    SARPtr = ^StatusAreaRecord;
  103.    StatusAreaRecord = RECORD
  104.         EventType      : BYTE;{User-defined}
  105.         TransType      : BYTE;{User-defined}
  106.         Status         : INTEGER;
  107.         SendTime       : WORD;{User-defined}
  108.         SendDate       : WORD;{User-defined}
  109.         NumberOfFiles  : INTEGER;{User-defined}
  110.         FTROffset      : INTEGER;{User-defined}
  111.         PhoneNo        : ARRAY[1..47] OF CHAR;{User-defined}
  112.         TagField       : ARRAY[1..64] OF CHAR;
  113.         Unused1        : BYTE;{User-defined}
  114.         CallSecs       : BYTE;
  115.         CallMins       : BYTE;
  116.         CallHrs        : BYTE;
  117.         TotPages       : LONGINT;
  118.         NumPagesSent   : LONGINT;
  119.         NumFilesSent   : INTEGER;
  120.         CoverFlag      : BYTE;{User-defined}
  121.         NumErrors      : INTEGER;
  122.         Unused2        : ARRAY[1..78] OF BYTE;{User-defined}
  123.         CSID           : ARRAY[1..21] OF BYTE;
  124.         Dest           : ARRAY[1..32] OF CHAR;{User-defined}
  125.         Sender         : ARRAY[1..32] OF CHAR;{User-defined}
  126.         PCXFile        : ARRAY[1..80] OF CHAR;{User-defined}
  127.         FAXType        : BYTE;
  128.         TextSize       : BYTE;
  129.         FTRStatus      : BYTE;
  130.         BytesTrans     : LONGINT;
  131.         SizeOfFile     : LONGINT;
  132.         NumPagesTrans  : INTEGER;
  133.         NumPagesTot    : INTEGER;
  134.         FAXFileName    : ARRAY[1..80] OF CHAR;
  135.         Increments     : BYTE;
  136.         Inches         : BYTE;
  137.         Reserved       : ARRAY[1..31] OF BYTE;
  138.         END;
  139.  
  140. VAR
  141.    CASError : WORD;
  142.    AutoState : BYTE;
  143.    EDB : EDBPtr;
  144.    CFR : CFRPtr;
  145.    FTR : FTRPtr;
  146.    SAR : SARPtr;
  147.    ControlFile : FILE;
  148.    FileList : FileNameArray;
  149.  
  150.  
  151. FUNCTION ManagerInstalled : BOOLEAN;
  152. {CAS Function 00h}
  153.  
  154. FUNCTION SubmitTask(ControlFileName : FileName) : INTEGER;
  155. {CAS Function 01h}
  156.  
  157. PROCEDURE AbortCurrentEvent;
  158. {CAS Function 02h}
  159.  
  160. PROCEDURE FindFirstQEntry(EType : EventTypes;Direction : Directions;
  161.           QueueType : QueueTypes;VAR EventHandle : INTEGER);
  162. {CAS Function 05h}
  163.  
  164. PROCEDURE FindNextQEntry(QueueType : QueueTypes;VAR EventHandle : INTEGER);
  165. {CAS Function 06h}
  166.  
  167. PROCEDURE OpenFile(QueueType : QueueTypes;VAR EventHandle : INTEGER;
  168.              FileNumber : INTEGER;VAR DOSHandle : INTEGER);
  169. {CAS Function 07h}
  170.  
  171. PROCEDURE DeleteFile(QueueType : QueueTypes;VAR EventHandle : INTEGER;
  172.              FileNumber : INTEGER);
  173. {CAS Function 08h}
  174.  
  175. PROCEDURE DeleteAllFiles(QueueType : QueueTypes);
  176. {CAS Function 09h}
  177.  
  178. PROCEDURE GetEventDate(QueueType : QueueTypes;VAR EventHandle : INTEGER;
  179.              VAR Year : INTEGER;VAR Month,Day : BYTE);
  180. {CAS Function 0Ah}
  181.  
  182. PROCEDURE SetTaskDate(VAR EventHandle : INTEGER;VAR Year : INTEGER;
  183.              VAR Month,Day : BYTE);
  184. {CAS Function 0Bh}
  185.  
  186. PROCEDURE GetEventTime(VAR Hour,Minutes,Secs : BYTE;EventHandle : INTEGER;
  187.              QueueType : QueueTypes);
  188. {CAS Function 0Ch}
  189.  
  190. PROCEDURE SetTaskTime(VAR Hour,Minutes,Secs : BYTE;VAR EventHandle : INTEGER);
  191. {CAS Function 0Dh}
  192.  
  193. PROCEDURE GetEDB;
  194. {CAS Function 0Eh}
  195.  
  196. PROCEDURE DisposeEDB(VAR EDB : EDBPtr);
  197.  
  198. PROCEDURE GetAutoReceiveState;
  199. {CAS Function 0Fh}
  200.  
  201. PROCEDURE SetAutoReceiveState(NumberOfRings : BYTE);
  202. {CAS Function 0Fh}
  203.  
  204. PROCEDURE GetCurrentEventStatus;
  205. {CAS Function 10h}
  206.  
  207. PROCEDURE DisposeSAR;
  208.  
  209. PROCEDURE GetQueueStatus(VAR NumChanges,NumFiles,NumReceived : INTEGER;
  210.           QueueType : QueueTypes);
  211. {CAS Function 11h}
  212.  
  213. PROCEDURE RunDiagnostics;
  214. {CAS Function 13h}
  215.  
  216. PROCEDURE MoveFile(VAR FName : FileName;VAR EventHandle : INTEGER;
  217.               VAR FileNumber : INTEGER);
  218. {CAS Function 14h}
  219.  
  220. PROCEDURE SendSingleFile(D : Str32;S : Str80;P : Str47);
  221. {CAS Function 15h}
  222.  
  223. PROCEDURE RemoveManager;
  224. {CAS Function 16h}
  225.  
  226. FUNCTION CreateControlFile(CFEvent : CFEventType;TransferType : BYTE;
  227.          CFRTime : WORD;CFRDate : WORD;NumFiles : INTEGER;Phone : Str47;
  228.          CoverPageFlag : BYTE;Destination : Str32;SenderName : Str32;
  229.          LogoName : Str80;VAR CoverPageText : CoverPageType) : FileName;
  230.  
  231. FUNCTION DOSTime(Hour,Minutes,Seconds : WORD) : WORD;
  232.  
  233. FUNCTION DOSDate(Month,Day,Year : WORD) : WORD;
  234.  
  235. IMPLEMENTATION
  236.  
  237. CONST
  238.    MUX = $CB;
  239.  
  240. TYPE
  241.  
  242.    LIT = RECORD
  243.        HI,LO : WORD;
  244.        END;
  245.  
  246.    FDAPtr = ^FAXDataArea;
  247.    FAXDataArea = RECORD
  248.         TransType : BYTE;
  249.         TextSize  : BYTE;
  250.         SendTime  : INTEGER;
  251.         SendDate  : INTEGER;
  252.         Dest      : ARRAY[1..32] OF CHAR;
  253.         SendFile  : ARRAY[1..80] OF CHAR;
  254.         Phone     : ARRAY[1..47] OF CHAR;
  255.         TagField  : ARRAY[1..64]